/*!
 * @file setContainer.hh
 * @brief Kontener na zmienne
 */

#ifndef __ENGINE_SET_SETCONTAINER_HH
#define __ENGINE_SET_SETCONTAINER_HH

#include <string>
#include <sstream>

/*!
 * @brief Kontener zawierający 1 zmienną zrzutowaną na 3 typy.
 */
class setContainer {
public:
	/*!
	 * @brief Tworzenie kontenera 0 / 0.0 / "undefined"
	 * @return Obiekt
	 */
	setContainer();

	/*!
	 * @brief Tworzenie kontenera ze stringa
	 * @param s Zadana wartość
	 * @return Obiekt
	 */
	setContainer(std::string s);

	/*!
	 * @brief Tworzenie kontenera z inta
	 * @param i Zadana wartość
	 * @return Obiekt
	 */
	setContainer(int i);

	/*!
	 * @brief Tworzenie kontenera z floata
	 * @param d Zadana wartość
	 * @return Obiekt
	 */
	setContainer(float d);

	/*!
	 * @brief Wypełnienie kontenera intem
	 * @param i Wartość
	 */
	void set(int i);

	/*!
	 * @brief Wypełnienie kontenera stringiem
	 * @param s Wartość
	 */
	void set(std::string s);

	/*!
	 * @brief Wypełnienie kontenera floatem
	 * @param d Wartość
	 */
	void set(float d);

	/*!
	 * @brief String
	 */
	std::string s;

	/*!
	 * @brief Int
	 */
	int i;

	/*!
	 * @brief Float
	 */
	float f;
};

#else
class setContainer;
#endif
